/*
vuex：
1.页面有多个需要共享的状态，引入vuex，便于维护（非父子通信）
2.缓存部分异步数据，减少后端服务的访问，增加用户体验
 */
import axios from "axios";

const CinemaModule = {
  namespaced: true, //开启命名空间,方便map辅助函数的使用
  state() {
    return {
      cinemaList: [],
    };
  },
  //唯一修改状态的位置【监控操作记录】，同步
  mutations: {
    changeCinemaList(state, payload) {
      state.cinemaList = payload;
    },
  },

  //同步+异步
  actions: {
    async getCinemaList(store, payload) {
      console.log(payload);
      const res = await axios({
        url: "https://m.maizuo.com/gateway?cityId=110100&ticketFlag=1&k=7546382",
        headers: {
          "X-Client-Info":
            '{"a":"3000","ch":"1002","v":"5.2.1","e":"16927511235634589070458881","bc":"110100"}',
          "X-Host": "mall.film-ticket.cinema.list",
        },
      });
      // console.log(res.data.data.cinemas);
      //提交mutations
      store.commit("changeCinemaList", res.data.data.cinemas);
    },
  },

  //getter store的计算属性
  getters: {
    computedCinemaList(state) {
      //如果需要传参，需要写成返回一个函数形式
      return (type) => {
        return state.cinemaList.filter((item) => item.eTicketFlag === type);
      };
    },
  },
};

export default CinemaModule;
